﻿using System;

namespace Tuxedo.Compile
{
	internal class CharConstant : Constant
	{
		public char Value { get; private set; }
		public override object ObjectValue { get { return this.Value; } }

		public CharConstant(char value)
		{
			this.Value = value;
		}

		public override bool IsZero { get { return this.Value == '\0'; } }

		public override Expression Add(Constant other)
		{
			throw new NotImplementedException();
		}

		public override Expression Subtract(Constant other)
		{
			throw new NotImplementedException();
		}

		public override Expression Multiply(Constant other)
		{
			throw new NotImplementedException();
		}

		public override Expression Divide(Constant other)
		{
			throw new NotImplementedException();
		}

		public override Expression Modulo(Constant other)
		{
			throw new NotImplementedException();
		}

		public override Expression Negative()
		{
			return new IntegerConstant(-this.Value);
		}
	}
}
